#07 : Alteryxサンプルワークフロー「未フォーマットデータの標準化」- Alteryx & Tableau 連携 Advent Calendar 2018
当エントリは『Alteryx&Tableau連携 Advent Calendar 2018』シリーズの7本目のエントリです。
- Alteryx & Tableau 連携 Advent Calendar 2018 - Qiita
- Alteryx & Tableau 連携 Advent Calendar 2018 | シリーズ | DevelopersIO
当エントリでは、Alteryx Designerの実行ワークフローサンプル「Standardize Unformatted Data(未フォーマットデータの標準化)」の内容を紹介します。
目次
「本日のテーマ」概要紹介
AlteryxとTableauはそのツール特性から非常に相性が良く、製品間それぞれにパートナー企業としての(特集)ページが設けられています。
本日は、Alteryx Designerの「Sample Workflows」にて展開されている「Tableau Starter Kit」の中で、「Data Preparation」配下の「Standardize Unformatted Data(未フォーマットデータの標準化)」というサンプルワークフローについて見ていきたいと思います。
このワークフローでは、フォーマットされていないログ情報(セキュリティに関するもの)のテキストファイルを解析し、分析用の使用可能なテーブルに解析する方法を示しています。
ワークフローの全体像
サンプルワークフローの全体像は以下となります。
ワークフローを読み解く
まずは入力ファイルの確認。お世辞にも整っているとは言い難い内容のようです。
実際のファイルの中身をテキストエディタで確認してみます。情報として出力されてはいますが解析にはちょっと...という感じですね。
序盤のフェーズでは、以下の様な処理を行っています。
- Formula Tool: 文字列関数TRIM()を使って行における前後の半角空白を除去
- Multi Row Formula Tool: RecordNumを新規列として生成、その値は「行内に日付の情報があれば+1、無ければ前行と同じ値を設定」というルールで採番
- この処理で、処理日付毎に同じ番号が振られる→1件のデータとして識別可能な形となる
- Summarize Tool: RecordNumで情報をサマリー。Group by項目に「RecordNum」、Action項目に「Concat(文字列結合)」を指定。これで文字列として1つのRecordNumに対する情報が集約される
- Text to Columns Tool: 上記結合された情報(Text)をタブ文字(¥t)で列毎(Columns)の値に分割
- Select Tool: 上記分割された項目群(Field1、Field2...)の名称を、意味のある項目名にリネーム
- Text to Columns Tool: 項目「Other」に対し、パイプ文字(|)で情報を分割
中盤部分は処理が二手に分かれています。一方では以下の様な処理を行っています。
- Select Tool: "Others"に関する項目を不要とし、選択項目から外す
- Filter Tool: 不要なレコードを除去(RecordNum > 0で先頭行を除外)
- Formula Tool: 後の処理で利用するためのタイムスタンプ情報をそれぞれ生成
もう一方では、以下の様な処理を行っています。
- Transpose Tool: "Other"に関する一連の項目を横持ちから縦持ちに変換
- Filter Tool: 値(Value)の項目が空の状態のレコードをisEmpty()関数を使って排除
- RegEx Tool: 値(Value)の項目に対して、正規表現でフィールド名・フィールド値として解析
- Filter Tool: 解析したフィールド値が空の状態のレコードをisEmpty()関数を使って排除
- CrossTab Tool: 一連の処理で生成された内容を構造化テーブルの形にピボット
後半部分では二手に分かれて処理された内容をRecordNumで結合。
終盤部分では、以下の様な処理を行っています。
- Multi Field Formula Tool: 複数のフィールド(ここではテキスト項目を指定)に対してTRIM()関数を適用し、先頭及び末尾のスペースを削除
- Formula Tool: Login ID情報に、値の内容に基づいたログオン情報を設定
- Sort Tool: 所定の条件でデータを並べ替え
- Multi-Row Formula Tool: Logon IDと日付に基づき、Record Groupという新しいフィールドを生成
- Unique Tool: 「Record Group」フィールドに基づき、重複レコードを削除
- Select Tool: 分析に不要な項目を選択削除
- Dynamic Rename Tool: フィールド項目名のアンダースコア(_)を空白に変換
ワークフローの実行・Tableauワークブックの内容確認
画面右上の「Run」ボタン、または「Control」+「R」のショートカットでワークフローを実行。このワークフローでは、最終的にTableauの抽出ファイル形式であるhyperを生成しています。
抽出ファイル(Hyper形式)をTableauで開いてみてみます。以下の様な形で、整形されたデータ内容を確認する事が出来ました。
まとめ
という訳で、『Alteryx & Tableau 連携 Advent Calendar 2018 』7本目、「Standardize Unformatted Data(未フォーマットデータの標準化)」のご紹介でした。
今回取り上げた様な「整っていない形式のファイル」を取り込むのは非常に骨が折れる作業となります。変換・整形のルールさえ見つけ出してしまえば、このような形でAlteryxで処理をワークフローとして作り上げ、自動化する事が出来ます。地道な作業となりますが、まずは対象作業の「変換ルール、加工手順」を整理する事から始めてみるのはいかがでしょうか。
引き続き、明日もお楽しみに!
- Alteryx & Tableau 連携 Advent Calendar 2018 - Qiita
- Alteryx & Tableau 連携 Advent Calendar 2018 | シリーズ | DevelopersIO
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。